import Request from 'luch-request'
import {
	removeStorageSync,
	getStorageSync
} from '@/utils/storage.js'

const http = new Request()

http.setConfig((config) => {
	// 如果是生产环境，则指定prod-api `${process.env.NODE_ENV}`
	config.baseURL = process.env.NODE_ENV === 'development' ? '/dev-api' : '/prod-api'
	config.header = {
		'Content-Type': 'application/json;charset=UTF-8',
		...config.headers,
	}
	return config
})

http.interceptors.request.use((config) => {
	/* 请求之前拦截器。可以使用async await 做异步操作 */
	config.header = {
		...config.header,
		'Authorization': getTokenStorage()
	}
	return config
}, (config) => {
	return Promise.reject(config)
})


http.interceptors.response.use((response) => {
	/* 请求之后拦截器。可以使用async await 做异步操作  */
	const code = response.data.code

	return response.data
}, (err) => { 
	// 请求错误做点什么。可以使用async await 做异步操作
	const data = err.data
	// 授权登录
	return Promise.reject(err)
})


const getTokenStorage = () => {
	let token = ''
	try {
		token = getStorageSync('token')
	} catch (e) {
		//TODO handle the exception
	}
	return token
}

export {
	http
}
